package singleUseDeprecated;

//import com.google.gson.Strictness;
import com.google.gson.stream.JsonReader;

import java.io.StringReader;

public class JsonReaderSetLenientExample {

    /**
     * 使用 JsonReader 的 setLenient 方法解析 JSON 字符串。
     */
    public static String parseJsonWithLenient(String json, boolean isLenient) {
        try (JsonReader jsonReader = new JsonReader(new StringReader(json))) {
            jsonReader.setLenient(isLenient);

            StringBuilder result = new StringBuilder();
            jsonReader.beginObject(); // 读取 JSON 对象的起始

            while (jsonReader.hasNext()) {
                String name = jsonReader.nextName(); // 读取键
                String value = jsonReader.nextString(); // 读取值
                result.append(name).append(": ").append(value).append("\n");
            }

            jsonReader.endObject(); // 读取 JSON 对象的结束
            return result.toString().trim();
        } catch (Exception e) {
            return "Error parsing JSON: " + e.getMessage();
        }
    }

    //弃用API替换 该方法不适用于该版本
//    public static String parseJsonWithLenient2(String json, boolean isLenient) {
//        try (JsonReader jsonReader = new JsonReader(new StringReader(json))) {
//            // 使用 setStrictness 代替 setLenient
//            jsonReader.setStrictness(isLenient ? Strictness.LENIENT : Strictness.STRICT);
//
//            StringBuilder result = new StringBuilder();
//            jsonReader.beginObject(); // 读取 JSON 对象的起始
//
//            while (jsonReader.hasNext()) {
//                String name = jsonReader.nextName(); // 读取键
//                String value = jsonReader.nextString(); // 读取值
//                result.append(name).append(": ").append(value).append("\n");
//            }
//
//            jsonReader.endObject(); // 读取 JSON 对象的结束
//            return result.toString().trim();
//        } catch (Exception e) {
//            return "Error parsing JSON: " + e.getMessage();
//        }
//    }

}
